/**
 * Project: Utilities <br>
 * Package: org.leumasjaffe.collections.map
 */
package org.leumasjaffe.collections.map;

import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import org.eclipse.jdt.annotation.NonNullByDefault;

/**
 * Class org.leumasjaffe.collections.map..SetHashMultiMap in file SetHashMultiMap.java <br>
 * 
 * @author leumasjaffe
 * @version Feb 1, 2014
 * Created on: Feb 1, 2014
 * 
 */
@NonNullByDefault
public class SetHashMultiMap<K, V> extends DelegateMultiMap<K, V> {
	
	public SetHashMultiMap() {
		super(new HashMap<K, Set<V>>());
	}
	
	public SetHashMultiMap(int initialCapacity) {
		super(new HashMap<K, Set<V>>(initialCapacity));
	}
	
	public SetHashMultiMap(int initialCapacity, float loadFactor) {
		super(new HashMap<K, Set<V>>(initialCapacity, loadFactor));
	}
	
	public SetHashMultiMap(Map<? extends K, ? extends V> m) {
		super(new HashMap<K, Set<V>>(m.size()));
		putAll(m);
	}
	
	public SetHashMultiMap(MultiMap<? extends K, ? extends V> m) {
		super(new HashMap<K, Set<V>>(m.size()));
		putAll(m);
	}
	
	@Override
	protected Collection<V> newTypeInstance() {
		return new HashSet<V>();
	}
}
